package com.zzg.service;

import com.zzg.entity.*;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * @author zzg
 * @version 1.0.0
 * @ClassName：JurisdictionService
 * @Description: 权限管理服务接口层
 * @date 2021/6/18
 **/
public interface JurisdictionService {
    /**
     * 根据用户查询用户的所有权限
     * @author zzg
     * @date 2021/6/18 11:35
     * @params *@params
     * @return
     */
    List<Menu> showMenu(@Param("userName") String userName);
    /**
     * 查询所有菜单数据 用于菜单数据表的展示
     * @author zzg
     * @date 2021/6/18 16:44
     * @params *@params page页 limit条码数
     * @return 返回map集合用于界面json数据展示
     */
    Map<String, Object> menuList(Integer page, Integer limit);
    Map<String, Object> roleList(Integer page, Integer limit);
    Map<String, Object> tmsUserList(Integer page, Integer limit);
    /**
     * 菜单添加数据查询所有菜单
     * @author zzg
     * @date 2021/6/21 9:55
     * @params *@params
     * @return
     */
    List<Menu> previousMenu();
    /**
     * 插入菜单
     * @author zzg
     * @date 2021/6/21 19:20
     * @params *@params
     * @return
     */
    int addMenutble(Menu menu);
    /**
     * 根据id删除菜单数据
     * @author zzg
     * @date 2021/6/21 19:49
     * @params *@params
     * @return
     */
    String delMenu(String menuId);
    /**
     * 修改的数据展示
     * @author zzg
     * @date 2021/6/21 19:58
     * @params *@params
     * @return
     */
    Menu showUpdateMenu(String menuId);

    String updateMenu(Menu menu);

    List<Menus> getParent();
    List<MenusText> getParentText(String tmsId);
    /**
     * 添加角色同时删除角色菜单关联表
     * @author zzg
     * @date 2021/6/23 11:42
     * @params *@params
     * @return
     */
    void addRole(List<RoleMenu> roleMenus, Role role);

    void updateRole(List<RoleMenu> roleMenus, Role role);
    /**
     * 删除角色同时删除角色菜单关联表
     * @author zzg
     * @date 2021/6/23 11:42
     * @params *@params
     * @return
     */
    String delRole(String roleId);
    /**
     * 修改角色根据id查询
     * @author zzg
     * @date 2021/6/23 16:09
     * @params *@params
     * @return
     */
    Role ShowUpdateRole(String roleId);


    TmsUser updateUser(String tmsId);

    List<Role> selectRole();

    String updateUserTable(List<UserRole> roleId, TmsUser tmsUser);

    Map<String, Object> selectStaff(Integer page, Integer limit);
    /**
     * 根据id删除
     * @author yw
     * @params *@params
     * @return
     */
    int deletePersonner(String id);

    /**
     * 增加用户密码账号
     * @author yw
     * @params *@params
     * @return
     */
    int insertTmsuser(TmsUser user);
    /**
     * 增加用户
     * @author yw
     * @params *@params
     * @return
     */
    int insertPersonner(Personnel per);


}
